package cn.itcast.reflect;

import cn.itcast.domain.Person;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

/**
 * 获取方法
 */
public class ReflectDemo4 {

    /**
     * 因为有重载方法的存在
     * 所以获取方法不光要传方法名
     * 还要穿参数类型
     * @param args
     */
    public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        Class personClass = Person.class ;

        //获取指定名称的方法
        Method eat_method = personClass.getMethod("eat");

        //执行方法要传入真实的对象和参数
        Person person = new Person() ;
        eat_method.invoke(person );

        Method eat = personClass.getMethod("eat", String.class);
        eat.invoke(person , "傻逼");
    }
}
